/**
 * 循环覆盖文件
 * 张勇 41204@qq.com
 */

#ifndef _ROLLING_FILE_H_
#define _ROLLING_FILE_H_

#include <stdio.h>
#include "std_err.h"

#ifdef __cplusplus
extern "C" {
#endif


/**
 * 将文件名向后 rolling
 * @param filepath 文件路径
 * @param max_filecount 文件绕接数量（如果文件超过最大尺寸，则循环覆盖最老的那个）
 * @return 标准错误码
 */
std_err_t roll_files(const char* filepath, int max_filecount);

/**
 * 获取滚动文件指针，必要时自动滚动
 * @param fd [in]之前已经打开的滚动文件指针，如果之前没有打开过，应传入 *fp=unios_file_null(); [out]打开的可用滚动文件指针，如果之前传入的文件合法，且未超过大小，则与传入的相同
 * @param filepath 文件路径
 * @param max_filesize 文件最大尺寸
 * @param max_filecount 文件绕接数量（如果文件超过最大尺寸，则循环覆盖最老的那个）
 * @return 标准错误码
 */
std_err_t get_rolling_file(unios_file_t *fd, const char *filepath, int max_filesize, int max_filecount);


#ifdef __cplusplus
}
#endif

#endif  // _ROLLING_FILE_H_
